/**
 * 
 */
package it.unical.canonaco.rende.igpe.game.cbv.logiclayer.engine.component.pawn.stats;

/** It gathers immutable information for an ability
 * @author Massimo Canonaco
 *
 */
public class AbilityValue {
	
	public static int PHYSICAL_DAMAGE = 0;
	public static int MAGIC_DAMAGE = 1;
	public static int STATS_MODIFIER = 2;
	public static int RECOVERY = 3;
	
	/** */
	private String name;
	
	/** */
	private boolean areaOfEffect;
	
	/** */
	private boolean friendly;
	
	private boolean selfOnly;
	
	/** */
	private float cost;
	
	private int id;
	
	private int type;
	
	//if spell is aoe it represents the aoe radius, instead attackRange will be used for buffing attack range
	//of the characters or calculating some damage
	private int radius = 0;
	
	public AbilityValue() {
		selfOnly = false;
		radius = 0;
	}
	/**
	 * @return the name
	 */
	public String getName() {
		return name;
	}

	/**
	 * @param name the name to set
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * @return the areaOfEffect
	 */
	public boolean isAreaOfEffect() {
		return areaOfEffect;
	}

	/**
	 * @param areaOfEffect the areaOfEffect to set
	 */
	public void setAreaOfEffect(boolean areaOfEffect) {
		this.areaOfEffect = areaOfEffect;
	}

	/**
	 * @return the friendly
	 */
	public boolean isFriendly() {
		return friendly;
	}

	/**
	 * @param friendly the friendly to set
	 */
	public void setFriendly(boolean friendly) {
		this.friendly = friendly;
	}

	/**
	 * @return the cost
	 */
	public float getCost() {
		return cost;
	}

	/**
	 * @param cost the cost to set
	 */
	public void setCost(float cost) {
		this.cost = cost;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public int getType() {
		return type;
	}

	public void setType(int type) {
		this.type = type;
	}

	public boolean isSelfOnly() {
		return selfOnly;
	}

	public void setSelfOnly(boolean selfOnly) {
		this.selfOnly = selfOnly;
	}

	public int getRadius() {
		return radius;
	}

	public void setRadius(int radius) {
		this.radius = radius;
	}

}
